S1: Functional Choreographies with Pirouette

Seminar

Pirouette is a higher-order, typed functional choreographic programming language. Pirouette lets developers design distributed systems as centralized functional programs, which are then automatically compiled into distributed implementations for each participant via endpoint projection. The language’s enables choreographies to be passed as program values, embracing abstraction and reuse.

Goals

First, become familiar Pirouette, write small choreographic programs using the Pirouette-Compiler.

Then, you could either explore the paper describing First-Class Location (Set) Polymorphism as an extension, or compare Pirouette with a choreographic programming library, like MultiChor.

Starting Points

Advanced Reading